[アップデート] Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました
こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。
Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました。
Amazon Route53 Resolver DNS Firewall
Amazon Route53 Resolver DNS Firewall は VPC からのアウトバウンド DNS クエリを保護する機能です。
DNS Firewall を利用することでドメイン名でアウトバウンド DNS クエリをフィルタリングできます。Network Firewall との違い等は以下に書かれていますので、合わせてご覧ください。
Security Hub との統合
いままで Security Hub と統合されていなかったため、ブロック/アラート/許可されたかの判定は DNS クエリのログから確認する必要がありました。
今回のアップデートで、ブロック、アラートされたクエリを Security Hub の GUI から確認できるようになりました。今まで行っていた Athena や CloudWatch Logs Insights で検索する手間が省けてとても良いですね。
やってみた
今回私が検証した限りでは次の検証結果となりました。今後のアップデートや検証内容によって結果が異なる可能性があります。(DNS Firewall Advanced は利用しませんでした。)
- アクションが
BLOCK
またはALERT
の場合に Findings が検出される。(ALLOW
の場合は検出されない) - 製品名が
Route 53 Resolver DNS Firewall - AWS List
とRoute 53 Resolver DNS Firewall - Custom List
の 2 種類ある- Route 53 Resolver DNS Firewall - AWS List は AWS Managed Domain List との統合
- デフォルトで有効化されている
BLOCK
またはALERT
の場合に Findings が検出される
- Route 53 Resolver DNS Firewall - Custom List は Custom Domain List との統合
- デフォルトでは無効化になっている
BLOCK
の場合に Findings が検出される
- Route 53 Resolver DNS Firewall - AWS List は AWS Managed Domain List との統合
- Findings の重要度は一律
HIGH
で記録される
Custom List の統合
Custom Domain List を利用してルールを作っている場合は、Security Hub 側で Route 53 Resolver DNS Firewall - AWS List
の受け入れが必要です。
Security Hub コンソールから統合、Route 53 Resolver DNS Firewall を検索し受け入れを開始します。開始できている状態になると、以下のような表示になります。
ルールグループの作成
今回はマネージドルールグループ 4 つとカスタムルールグループを 1 つ用意しました。
AWSManagedDomainsMalwareDomainList だけ BLOCK にしています。custom-domain-rule では dev.classmethod.jp
を ALERT するようなルールを設定しました。
テスト
それでは関連づけられた VPC 内の EC2 で DNS クエリのテストを行います。各マネージドルールにはテスト用のドメインが用意されているためこちらを利用します。
AWSManagedDomainsBotnetCommandandControl
- controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain2.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain3.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
AWSManagedDomainsMalwareDomainList
- controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain2.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
AWSManagedDomainsAggregateThreatList および AWSManagedDomainsAmazonGuardDutyThreatList
- controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain2.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
- controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
# AWSManagedDomainsBotnetCommandandControl
dig controldomain3.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
# AWSManagedDomainsMalwareDomainList
dig controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
# AWSManagedDomainsAggregateThreatList, AWSManagedDomainsAmazonGuardDutyThreatList
dig controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
# custom
dig dev.classmethod.jp
AWSManagedDomainsMalwareDomainList のみ NODATA で結果が返ってきています。
sh-5.2$ # AWSManagedDomainsBotnetCommandandControl
dig controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
; <<>> DiG 9.18.28 <<>> controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6890
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. IN A
;; ANSWER SECTION:
controldomain1.botnetlist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:48 UTC 2025
;; MSG SIZE rcvd: 119
sh-5.2$ # AWSManagedDomainsMalwareDomainList
dig controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
; <<>> DiG 9.18.28 <<>> controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16649
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com. IN A
;; Query time: 9 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:53 UTC 2025
;; MSG SIZE rcvd: 104
sh-5.2$ # AWSManagedDomainsAggregateThreatList, AWSManagedDomainsAmazonGuardDutyThreatList
dig controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
; <<>> DiG 9.18.28 <<>> controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65393
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. IN A
;; ANSWER SECTION:
controldomain1.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. 300 IN A 1.2.3.4
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:37:58 UTC 2025
;; MSG SIZE rcvd: 122
sh-5.2$ # custom
dig dev.classmethod.jp
; <<>> DiG 9.18.28 <<>> dev.classmethod.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38698
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dev.classmethod.jp. IN A
;; ANSWER SECTION:
dev.classmethod.jp. 60 IN A 18.65.216.15
dev.classmethod.jp. 60 IN A 18.65.216.79
dev.classmethod.jp. 60 IN A 18.65.216.111
dev.classmethod.jp. 60 IN A 18.65.216.86
;; Query time: 9 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 02:38:02 UTC 2025
;; MSG SIZE rcvd: 111
検出結果が Security Hub に表示されました。
4 つのマネージドドメインですが、 AWSManagedDomainsAmazonGuardDutyThreatList と AWSManagedDomainsAmazonGuardDutyThreatList は共用のため想定通りです。
また、ALERT と BLOCK で検知されていますが、重大度は HIGH で統一されています。
ただ、 Custom List の検出結果は表示されませんでした。
検出結果を JSON でエクスポートしてみました。どのマネージドルールで検知されたのかは ProductFields の "aws/route53resolver/dnsfirewall/firewallDomainListId"
を見れば良さそうです。
BLOCK の検出結果
{
"AwsAccountId": "123456789012",
"CompanyName": "Amazon",
"CreatedAt": "2025-01-21T02:52:42Z",
"Description": "DNS Firewall BLOCK",
"FindingProviderFields": {
"Types": [
"TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
],
"Severity": {
"Normalized": 70,
"Label": "HIGH"
}
},
"FirstObservedAt": "2025-01-21T02:52:42Z",
"GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
"Id": "498bd16e-6334-42c4-85af-c97bb42682c3",
"LastObservedAt": "2025-01-21T02:52:42Z",
"ProcessedAt": "2025-01-21T02:53:49.322Z",
"ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list",
"ProductFields": {
"aws/route53resolver/dnsfirewall/queryName": "controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com.",
"aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
"aws/route53resolver/dnsfirewall/queryType": "A",
"aws/route53resolver/dnsfirewall/queryClass": "IN",
"aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-dc19e97bef3c454a",
"aws/route53resolver/dnsfirewall/transport": "UDP",
"aws/route53resolver/dnsfirewall/firewallRuleAction": "BLOCK",
"aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list/498bd16e-6334-42c4-85af-c97bb42682c3",
"aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - AWS List",
"aws/securityhub/CompanyName": "Amazon"
},
"ProductName": "Route 53 Resolver DNS Firewall - AWS List",
"RecordState": "ACTIVE",
"Region": "ap-northeast-1",
"Resources": [
{
"Details": {
"AwsEc2Instance": {
"VpcId": "vpc-091e3f457babd2374",
"IpV4Addresses": [
"10.0.133.45"
]
}
},
"Id": "i-0ff3bf7391109f1d9",
"Partition": "aws",
"Region": "ap-northeast-1",
"Type": "AwsEc2Instance"
}
],
"SchemaVersion": "2018-10-08",
"Severity": {
"Label": "HIGH",
"Normalized": 70
},
"Title": "DNS Firewall BLOCK generated for domain controldomain3.malwarelist.firewall.route53resolver.us-east-1.amazonaws.com. from VPC vpc-091e3f457babd2374",
"Types": [
"TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
],
"UpdatedAt": "2025-01-21T02:52:42Z",
"Workflow": {
"Status": "NEW"
},
"WorkflowState": "NEW"
}
ALERT の検出結果
{
"AwsAccountId": "123456789012",
"CompanyName": "Amazon",
"CreatedAt": "2025-01-21T02:52:41Z",
"Description": "DNS Firewall ALERT",
"FindingProviderFields": {
"Types": [
"TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
],
"Severity": {
"Normalized": 70,
"Label": "HIGH"
}
},
"FirstObservedAt": "2025-01-21T02:52:41Z",
"GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
"Id": "4eecb0b7-eaca-41bc-8ac1-ea0401f8f822",
"LastObservedAt": "2025-01-21T02:52:41Z",
"ProcessedAt": "2025-01-21T02:53:48.424Z",
"ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list",
"ProductFields": {
"aws/route53resolver/dnsfirewall/queryName": "controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com.",
"aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
"aws/route53resolver/dnsfirewall/queryType": "A",
"aws/route53resolver/dnsfirewall/queryClass": "IN",
"aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-3ba9acb851c04c45",
"aws/route53resolver/dnsfirewall/transport": "UDP",
"aws/route53resolver/dnsfirewall/firewallRuleAction": "ALERT",
"aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-aws-list/4eecb0b7-eaca-41bc-8ac1-ea0401f8f822",
"aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - AWS List",
"aws/securityhub/CompanyName": "Amazon"
},
"ProductName": "Route 53 Resolver DNS Firewall - AWS List",
"RecordState": "ACTIVE",
"Region": "ap-northeast-1",
"Resources": [
{
"Details": {
"AwsEc2Instance": {
"VpcId": "vpc-091e3f457babd2374",
"IpV4Addresses": [
"10.0.133.45"
]
}
},
"Id": "i-0ff3bf7391109f1d9",
"Partition": "aws",
"Region": "ap-northeast-1",
"Type": "AwsEc2Instance"
}
],
"SchemaVersion": "2018-10-08",
"Severity": {
"Label": "HIGH",
"Normalized": 70
},
"Title": "DNS Firewall ALERT generated for domain controldomain3.aggregatelist.firewall.route53resolver.us-east-1.amazonaws.com. from VPC vpc-091e3f457babd2374",
"Types": [
"TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"
],
"UpdatedAt": "2025-01-21T02:52:41Z",
"Workflow": {
"Status": "NEW"
},
"WorkflowState": "NEW"
}
ルールの内容を変更
カスタムルールのルールを ALERT から BLOCK に変更します。
同じく dig コマンドを実行します。
# custom
dig dev.classmethod.jp
NODATA で返ってきていますね。
sh-5.2$ dig dev.classmethod.jp
; <<>> DiG 9.18.28 <<>> dev.classmethod.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1873
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dev.classmethod.jp. IN A
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2) (UDP)
;; WHEN: Tue Jan 21 04:00:33 UTC 2025
;; MSG SIZE rcvd: 47
sh-5.2$
Security Hub の検出結果も表示されていました。 BLOCK の時は検出されましたね。
{
"AwsAccountId": "123456789012",
"CompanyName": "Amazon",
"CreatedAt": "2025-01-21T01:45:33Z",
"Description": "DNS Firewall BLOCK",
"FindingProviderFields": {
"Types": ["TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"],
"Severity": {
"Normalized": 70,
"Label": "HIGH"
}
},
"FirstObservedAt": "2025-01-21T01:45:33Z",
"GeneratorId": "arn:aws:route53resolver:ap-northeast-1:123456789012:firewall-rule-group/rslvr-frg-983619b76c874750",
"Id": "d407b5ef-e8dd-4a69-b3e4-0501ebc163cf",
"LastObservedAt": "2025-01-21T01:45:33Z",
"ProcessedAt": "2025-01-21T03:55:47.651Z",
"ProductArn": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-custom-list",
"ProductFields": {
"aws/route53resolver/dnsfirewall/queryName": "dev.classmethod.jp.",
"aws/route53resolver/dnsfirewall/firewallRuleGroupId": "rslvr-frg-983619b76c874750",
"aws/route53resolver/dnsfirewall/queryType": "A",
"aws/route53resolver/dnsfirewall/queryClass": "IN",
"aws/route53resolver/dnsfirewall/firewallDomainListId": "rslvr-fdl-4f1aac80012245bd",
"aws/route53resolver/dnsfirewall/transport": "UDP",
"aws/route53resolver/dnsfirewall/firewallRuleAction": "BLOCK",
"aws/securityhub/FindingId": "arn:aws:securityhub:ap-northeast-1::product/amazon/route-53-resolver-dns-firewall-custom-list/d407b5ef-e8dd-4a69-b3e4-0501ebc163cf",
"aws/securityhub/ProductName": "Route 53 Resolver DNS Firewall - Custom List",
"aws/securityhub/CompanyName": "Amazon"
},
"ProductName": "Route 53 Resolver DNS Firewall - Custom List",
"RecordState": "ACTIVE",
"Region": "ap-northeast-1",
"Resources": [
{
"Details": {
"AwsEc2Instance": {
"VpcId": "vpc-091e3f457babd2374",
"IpV4Addresses": ["10.0.133.45"]
}
},
"Id": "i-0ff3bf7391109f1d9",
"Partition": "aws",
"Region": "ap-northeast-1",
"Type": "AwsEc2Instance"
}
],
"SchemaVersion": "2018-10-08",
"Severity": {
"Label": "HIGH",
"Normalized": 70
},
"Title": "DNS Firewall BLOCK generated for domain dev.classmethod.jp. from VPC vpc-091e3f457babd2374",
"Types": ["TTPs/Impact/Impact:Runtime-MaliciousDomainRequest.Reputation"],
"UpdatedAt": "2025-01-21T01:45:33Z",
"Workflow": {
"Status": "NEW"
},
"WorkflowState": "NEW"
}
まとめ
以上、「Amazon Route53 Resolver DNS Firewall が Security Hub と統合しました。」でした。
ログから検索する手間が省略できたのはとてもありがたいですね。Custom List を利用している場合は、統合の設定を忘れないようにしましょう。
このブログがどなたかの参考になれば幸いです。クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!